package com.ruoyi.bannerInfo.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 轮播图信息对象 wdmh_banner
 * 
 * @author ruoyi
 * @date 2025-09-15
 */
@Data
public class BannerInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 轮播图ID（主键） */
    private Long bannerId;

    /** 商家ID（外键） */
    @Excel(name = "商家ID", readConverterExp = "外=键")
    private Long merchantId;

    /** 图片地址 */
    @Excel(name = "图片地址")
    private String imageUrl;

    /** 跳转链接（小程序路径） */
    @Excel(name = "跳转链接", readConverterExp = "小=程序路径")
    private String linkUrl;

    /** 标题（可选） */
    @Excel(name = "标题", readConverterExp = "可=选")
    private String title;

    /** 副标题（可选） */
    @Excel(name = "副标题", readConverterExp = "可=选")
    private String subtitle;

    /** 顺序（小号优先） */
    @Excel(name = "顺序", readConverterExp = "小=号优先")
    private Long sortOrder;

    /** 展示开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "展示开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 展示结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "展示结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 轮播图类型：1=首页轮播 2=商城广告 3=酒店活动 */
    @Excel(name = "轮播图类型：1=首页轮播 2=商城广告 3=酒店活动")
    private String bannerType;

    /** 是否启用：0=禁用 1=启用 */
    @Excel(name = "是否启用：0=禁用 1=启用")
    private String isEnabled;

    /** 状态（0=正常, 1=禁用） */
    @Excel(name = "状态", readConverterExp = "0==正常,,1==禁用")
    private String status;

    /** 删除标志（0=未删除, 1=删除） */
    private String delFlag;

    /** 终端类型 */
    private String terminalType;

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("bannerId", getBannerId())
            .append("merchantId", getMerchantId())
            .append("imageUrl", getImageUrl())
            .append("linkUrl", getLinkUrl())
            .append("title", getTitle())
            .append("subtitle", getSubtitle())
            .append("sortOrder", getSortOrder())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("bannerType", getBannerType())
            .append("isEnabled", getIsEnabled())
            .append("status", getStatus())
            .append("delFlag", getDelFlag())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .append("remark", getRemark())
            .append("terminalType", getTerminalType())
            .toString();
    }
}
